<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // document.addEventListener("click",fun)
    
        /**
     * 工具函数，绑定监听事件 给函数传参 ，
     *  dom: 需绑定事件的 对象
     *  eventName: 监听事件 类型
     *  fn: 事件名
     *  ...args: 剩余参数，传给fn的参数
     * return 监听绑定的 函数 ，用于取消监听事件
     */
    function addEventListenerHandler(dom, eventName,fun,...args){
      let f = fun
      f = function(){
        fun.call(this,...args)
      }
      dom.addEventListener(eventName,f,false)
      return f
    }

    function fun(){
      console.log(11)
      
    }

    let f = addEventListenerHandler(document,"click",fun,'11')

    setTimeout(() => {
      console.log("移除")
      document.removeEventListener("click",f,false)
    }, 4000);

  </script>
</body>
</html>